﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using model;
using negocio.Util;
namespace negocio
{
    public class SubcategoriaBO
    {
        public int insertar(SUBCATEGORIA subcategoria)
        {
            ContextoTienda contexto = new ContextoTienda();
            int SUB_ID = -1;

            contexto.AddToSUBCATEGORIA(subcategoria);
            contexto.SaveChanges();
            SUB_ID = (int)subcategoria.SUB_ID;
            contexto.Dispose();

            return SUB_ID;
        }

        public void actualizar(SUBCATEGORIA subcategoria)
        {
            ContextoTienda contexto = new ContextoTienda();

            //linq
            SUBCATEGORIA SUBCATEGORIATmp = contexto.SUBCATEGORIA.Where(D => D.SUB_ID == subcategoria.SUB_ID).FirstOrDefault();
            SUBCATEGORIATmp.SUB_DESCRIPCION = subcategoria.SUB_DESCRIPCION;
            SUBCATEGORIATmp.SUB_NOMBRE = subcategoria.SUB_NOMBRE;
            SUBCATEGORIATmp.CAT_ID = subcategoria.CAT_ID;

            contexto.SaveChanges();
            contexto.Dispose();

        }

        public List<LibroUtil> listarTodos()
        {
            ContextoTienda contexto = new ContextoTienda();
            List<LibroUtil> lista = new List<LibroUtil>();
                
            lista = (from S in contexto.SUBCATEGORIA
                     select new LibroUtil()
                     {
                         CAT_ID = S.CAT_ID,
                         CAT_NOMBRE = S.CATEGORIA.CAT_NOMBRE,
                         CAT_DESCRIPCION = S.CATEGORIA.CAT_DESCRIPCION,

                         SUB_ID=S.SUB_ID,
                         SUB_NOMBRE=S.SUB_NOMBRE,
                         SUB_DESCRIPCION=S.SUB_DESCRIPCION
                     }).ToList();
            contexto.Dispose();


            return lista;
        }

        public SUBCATEGORIA getPorId(decimal id)
        {
            ContextoTienda contexto = new ContextoTienda();
            SUBCATEGORIA SUBCATEGORIATmp = contexto.SUBCATEGORIA.Where(S => S.SUB_ID == id).FirstOrDefault();
            contexto.Dispose();

            return SUBCATEGORIATmp;
        }

        
        public List<SUBCATEGORIA> listarPorCategoria(int idCategoria)
        {
            ContextoTienda contexto = new ContextoTienda();
            List<SUBCATEGORIA> lista = new List<SUBCATEGORIA>();

            lista = contexto.SUBCATEGORIA.Where(S => S.CAT_ID == idCategoria).ToList();

            contexto.Dispose();

            return lista;
        }


        //public void eliminar(int id)
        //{
        //    ContextoTienda contexto = new ContextoTienda();
        //    SUBCATEGORIA SUBCATEGORIATmp = contexto.SUBCATEGORIA.Where(D => D.SUB_ID == id).FirstOrDefault();

        //    contexto.DeleteObject(SUBCATEGORIATmp);
        //    contexto.SaveChanges();
        //    contexto.Dispose();
        //}
    }
}
